Skip to content

feat: migrate deploy to Cloudflare Workers#1

Merged
daesdev merged 2 commits intomainfrom
feature/cloudflare-deploy
Apr 5, 2026
Merged

feat: migrate deploy to Cloudflare Workers#1
daesdev merged 2 commits intomainfrom
feature/cloudflare-deploy

Conversation

@daesdev
Copy link
Copy Markdown
Owner

@daesdev daesdev commented Apr 5, 2026

  • Add wrangler.jsonc with CF Workers config and custom domain vibe-coding.daes.dev
  • Add server.ts entry point for Cloudflare Workers runtime
  • Update GitHub Actions workflow to use wrangler-action instead of Deno Deploy
  • Add deno task deploy for wrangler deploy
  • Update README with Cloudflare Workers info and @daesdev label
  • Format all files with deno fmt

- Add wrangler.jsonc with CF Workers config and custom domain vibe-coding.daes.dev
- Add server.ts entry point for Cloudflare Workers runtime
- Update GitHub Actions workflow to use wrangler-action instead of Deno Deploy
- Add deno task deploy for wrangler deploy
- Update README with Cloudflare Workers info and @daesdev label
- Format all files with deno fmt
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the app’s deployment target from Deno Deploy to Cloudflare Workers by introducing Wrangler configuration and a Workers-compatible entrypoint, and updates CI/docs to match the new deployment flow.

Changes:

  • Add wrangler.jsonc and a new server.ts Workers entrypoint.
  • Update GitHub Actions to verify/build, then deploy via cloudflare/wrangler-action.
  • Documentation/link updates and repository-wide formatting adjustments.

Reviewed changes

Copilot reviewed 18 out of 20 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
wrangler.jsonc Adds Cloudflare Workers/Wrangler configuration, including assets binding and custom domain routing.
server.ts Introduces the Workers fetch entrypoint using Fresh ServerContext.
.github/workflows/deploy.yml Replaces Deno Deploy with a verify/build job and a Cloudflare deploy job using Wrangler.
deno.json Adds a deploy task for Wrangler-based deployment.
README.md Updates deployment/docs to reference Cloudflare Workers and new author handle.
static/styles.css Formatting changes to CSS/font-face declaration.
static/favicon.svg Re-formats SVG markup (no functional changes intended).
postcss.config.js Formatting/quoting updates in PostCSS config.
components/SectionWrapperContent.tsx Refactors formatting/structure of the wrapper component.
components/WrapperPage.tsx Refactors formatting/structure of the wrapper component.
components/Header.tsx Updates GitHub links to new account.
components/Footer.tsx Adds trailing commas in dangerouslySetInnerHTML objects.
routes/index.tsx Formatting change in JSX props spacing.
routes/[lang]/index.tsx Formatting changes to mapped section rendering.
routes/_404.tsx Updates repository link to the new GitHub org/user.
islands/DarkMode.tsx Formatting changes.
islands/ButtonPrint.tsx Formatting changes and small structure tidy-up.
islands/AnchorLang.tsx Formatting changes to conditional class selection.
locales/es.json Re-formats JSON and updates author link content.
locales/en.json Re-formats JSON and updates author link content.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

</section>
);
export default function SectionWrapperContent(
{ title, attrClass, children }: SectionWrapperContentProps,
Copy link

Copilot AI Apr 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

attrClass is optional, but it’s interpolated directly into the template literal. When attrClass is undefined (e.g. current callers that omit it), this renders a literal "undefined" CSS class. Consider defaulting attrClass = "" (or conditionally appending it) when building classes.

Suggested change
{ title, attrClass, children }: SectionWrapperContentProps,
{ title, attrClass = "", children }: SectionWrapperContentProps,

Copilot uses AI. Check for mistakes.
<header class="min-w-min px-4 py-2 rounded-lg max-w-min mx-auto flex gap-4 items-center bg-slate-300/40 left-1/2 -translate-x-1/2 fixed bottom-4 md:sticky md:top-4 z-50 backdrop-blur-md dark:bg-slate-700/40 print:hidden">
<a
href="https://github.com/darioesp/vide-coding"
href="https://github.com/daesdev/vide-coding"
Copy link

Copilot AI Apr 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The GitHub repository link still points to .../vide-coding (with a d). Elsewhere in the PR the repo is referenced as vibe-coding. This looks like a broken URL; update the href to the correct repository path.

Suggested change
href="https://github.com/daesdev/vide-coding"
href="https://github.com/daesdev/vibe-coding"

Copilot uses AI. Check for mistakes.
locales/es.json Outdated
"<strong>Cursor -</strong> IDE más popular para vibe coding con una comprensión completa del código",
"<strong>Windsurf -</strong> Alternativa de rápido crecimiento que indexa todo tu código",
"<strong>Claude 3.5 Sonnet/3 Opus -</strong> Modelos líderes para tareas de codificación diarias",
"<strong>Claude 01/03 -</strong> Modelos de razonamiento paa depuración de problemas complejos",
Copy link

Copilot AI Apr 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The string "paa depuración" looks like a typo in Spanish; it should likely be "para depuración".

Suggested change
"<strong>Claude 01/03 -</strong> Modelos de razonamiento paa depuración de problemas complejos",
"<strong>Claude 01/03 -</strong> Modelos de razonamiento para depuración de problemas complejos",

Copilot uses AI. Check for mistakes.
Comment on lines +37 to 41
{translations.index.sections.map((section) => (
<>
<h3 class="font-bold text-base mt-5">
{section.title}
</h3>
Copy link

Copilot AI Apr 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sections.map(...) callback returns an unkeyed fragment (<>...</>). In Preact/React lists this produces a key warning and can lead to incorrect reconciliation if the list changes. Wrap the section block in an element/Fragment that has a stable key (e.g., based on section.title or an explicit id).

Copilot uses AI. Check for mistakes.
deno.json Outdated
"preview": "deno run -A main.ts",
"update": "deno run -A -r https://fresh.deno.dev/update ."
"update": "deno run -A -r https://fresh.deno.dev/update .",
"deploy": "wrangler deploy"
Copy link

Copilot AI Apr 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

deno task deploy currently runs wrangler deploy, which requires a globally installed wrangler binary. To make deploy reproducible for contributors (and match the pinned Wrangler version in CI), consider invoking Wrangler via Deno’s npm integration (e.g., deno run -A npm:wrangler@<version> ...) or otherwise documenting the installation requirement.

Suggested change
"deploy": "wrangler deploy"
"deploy": "deno run -A npm:wrangler deploy"

Copilot uses AI. Check for mistakes.
font-display: swap;
src: url('/fonts/roboto-mono-latin-500-normal.woff') format('woff2');
} No newline at end of file
src: url("/fonts/roboto-mono-latin-500-normal.woff") format("woff2");
Copy link

Copilot AI Apr 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The font file has a .woff extension but the declared format is "woff2". Some browsers use this hint for font selection and may skip loading if it doesn’t match. Either serve a .woff2 file (and keep woff2) or change the format hint to "woff".

Suggested change
src: url("/fonts/roboto-mono-latin-500-normal.woff") format("woff2");
src: url("/fonts/roboto-mono-latin-500-normal.woff") format("woff");

Copilot uses AI. Check for mistakes.
@daesdev
Copy link
Copy Markdown
Owner Author

daesdev commented Apr 5, 2026

@copilot apply changes based on the comments in this thread and fix type check and lint

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 5, 2026

@copilot apply changes based on the comments in this thread and fix type check and lint

Applied all review suggestions in commit 88bb5ac:

  • SectionWrapperContent.tsx: Defaulted attrClass = "" to prevent "undefined" CSS class
  • Header.tsx: Fixed broken URL (vide-codingvibe-coding)
  • locales/es.json: Fixed typo (paapara)
  • routes/[lang]/index.tsx: Replaced unkeyed <> fragments with <Fragment key={section.title}> and added Fragment import
  • deno.json: Updated deploy task to deno run -A npm:wrangler deploy (no global wrangler required)
  • static/styles.css: Fixed font format hint (woff2woff) to match the actual .woff file

@daesdev daesdev merged commit bba2901 into main Apr 5, 2026
@daesdev daesdev deleted the feature/cloudflare-deploy branch April 5, 2026 05:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants